package com.ruoyi.driver.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 司机信息附件对象 driver_info_attachments
 * 
 * @author yyj
 * @date 2025-08-17
 */
public class DriverInfoAttachments extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 附件记录ID */
    private Long id;

    /** 关联的司机ID */
    @Excel(name = "关联的司机ID")
    private Long driverId;

    /** 手机运营商 */
    @Excel(name = "手机运营商")
    private String mobileOperator;

    /** 公司标识 */
    @Excel(name = "公司标识")
    private String companyIdentifier;

    /** 注册地行政区代码 */
    @Excel(name = "注册地行政区代码")
    private String registrationDistrictCode;

    /** 驾驶员出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "驾驶员出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date driverBirthDate;

    /** 国籍 */
    @Excel(name = "国籍")
    private String nationality;

    /** 驾驶员民族 */
    @Excel(name = "驾驶员民族")
    private String driverEthnicity;

    /** 驾驶证编号 */
    @Excel(name = "驾驶证编号")
    private String driverLicenseNumber;

    /** 驾驶员婚姻状况 */
    @Excel(name = "驾驶员婚姻状况")
    private Long driverMaritalStatus;

    /** 驾驶员外语能力 */
    @Excel(name = "驾驶员外语能力")
    private String driverForeignLanguageAbility;

    /** 驾驶员学历 */
    @Excel(name = "驾驶员学历")
    private String driverEducation;

    /** 户口登记机关名称 */
    @Excel(name = "户口登记机关名称")
    private String householdRegistrationAuthority;

    /** 户口住址或常住地址 */
    @Excel(name = "户口住址或常住地址")
    private String householdAddress;

    /** 驾驶员通信地址（现居住地址） */
    @Excel(name = "驾驶员通信地址", readConverterExp = "现=居住地址")
    private String driverContactAddress;

    /** 驾驶员照片文件编号 */
    @Excel(name = "驾驶员照片文件编号")
    private String driverPhotoFileNumber;

    /** 机动车驾驶证 */
    @Excel(name = "机动车驾驶证")
    private String motorVehicleDriverLicense;

    /** 机动车驾驶证扫描文件编号 */
    @Excel(name = "机动车驾驶证扫描文件编号")
    private String motorVehicleDriverLicenseScanFileNumber;

    /** 准驾车型 */
    @Excel(name = "准驾车型")
    private String permittedDrivingType;

    /** 初次领取驾驶证日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "初次领取驾驶证日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstDriverLicenseAcquisitionDate;

    /** 驾驶证有效期起 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "驾驶证有效期起", width = 30, dateFormat = "yyyy-MM-dd")
    private Date driverLicenseValidityStartDate;

    /** 驾驶证有效期止 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "驾驶证有效期止", width = 30, dateFormat = "yyyy-MM-dd")
    private Date driverLicenseValidityEndDate;

    /** 是否专职驾驶员 */
    @Excel(name = "是否专职驾驶员")
    private Long isFullTimeDriver;

    /** 是否在驾驶员黑名单内 */
    @Excel(name = "是否在驾驶员黑名单内")
    private Long isInDriverBlacklist;

    /** 服务类型 */
    @Excel(name = "服务类型")
    private String serviceType;

    /** 驾驶员合同（或协议）签署公司 */
    @Excel(name = "驾驶员合同", readConverterExp = "或=协议")
    private String driverContractSigningCompany;

    /** 紧急情况联系人 */
    @Excel(name = "紧急情况联系人")
    private String emergencyContactPerson;

    /** 紧急情况联系人电话 */
    @Excel(name = "紧急情况联系人电话")
    private String emergencyContactPhone;

    /** 紧急情况联系人通信地址 */
    @Excel(name = "紧急情况联系人通信地址")
    private String emergencyContactAddress;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setDriverId(Long driverId) 
    {
        this.driverId = driverId;
    }

    public Long getDriverId() 
    {
        return driverId;
    }

    public void setMobileOperator(String mobileOperator) 
    {
        this.mobileOperator = mobileOperator;
    }

    public String getMobileOperator() 
    {
        return mobileOperator;
    }

    public void setCompanyIdentifier(String companyIdentifier) 
    {
        this.companyIdentifier = companyIdentifier;
    }

    public String getCompanyIdentifier() 
    {
        return companyIdentifier;
    }

    public void setRegistrationDistrictCode(String registrationDistrictCode) 
    {
        this.registrationDistrictCode = registrationDistrictCode;
    }

    public String getRegistrationDistrictCode() 
    {
        return registrationDistrictCode;
    }

    public void setDriverBirthDate(Date driverBirthDate) 
    {
        this.driverBirthDate = driverBirthDate;
    }

    public Date getDriverBirthDate() 
    {
        return driverBirthDate;
    }

    public void setNationality(String nationality) 
    {
        this.nationality = nationality;
    }

    public String getNationality() 
    {
        return nationality;
    }

    public void setDriverEthnicity(String driverEthnicity) 
    {
        this.driverEthnicity = driverEthnicity;
    }

    public String getDriverEthnicity() 
    {
        return driverEthnicity;
    }

    public void setDriverLicenseNumber(String driverLicenseNumber) 
    {
        this.driverLicenseNumber = driverLicenseNumber;
    }

    public String getDriverLicenseNumber() 
    {
        return driverLicenseNumber;
    }

    public void setDriverMaritalStatus(Long driverMaritalStatus) 
    {
        this.driverMaritalStatus = driverMaritalStatus;
    }

    public Long getDriverMaritalStatus() 
    {
        return driverMaritalStatus;
    }

    public void setDriverForeignLanguageAbility(String driverForeignLanguageAbility) 
    {
        this.driverForeignLanguageAbility = driverForeignLanguageAbility;
    }

    public String getDriverForeignLanguageAbility() 
    {
        return driverForeignLanguageAbility;
    }

    public void setDriverEducation(String driverEducation) 
    {
        this.driverEducation = driverEducation;
    }

    public String getDriverEducation() 
    {
        return driverEducation;
    }

    public void setHouseholdRegistrationAuthority(String householdRegistrationAuthority) 
    {
        this.householdRegistrationAuthority = householdRegistrationAuthority;
    }

    public String getHouseholdRegistrationAuthority() 
    {
        return householdRegistrationAuthority;
    }

    public void setHouseholdAddress(String householdAddress) 
    {
        this.householdAddress = householdAddress;
    }

    public String getHouseholdAddress() 
    {
        return householdAddress;
    }

    public void setDriverContactAddress(String driverContactAddress) 
    {
        this.driverContactAddress = driverContactAddress;
    }

    public String getDriverContactAddress() 
    {
        return driverContactAddress;
    }

    public void setDriverPhotoFileNumber(String driverPhotoFileNumber) 
    {
        this.driverPhotoFileNumber = driverPhotoFileNumber;
    }

    public String getDriverPhotoFileNumber() 
    {
        return driverPhotoFileNumber;
    }

    public void setMotorVehicleDriverLicense(String motorVehicleDriverLicense) 
    {
        this.motorVehicleDriverLicense = motorVehicleDriverLicense;
    }

    public String getMotorVehicleDriverLicense() 
    {
        return motorVehicleDriverLicense;
    }

    public void setMotorVehicleDriverLicenseScanFileNumber(String motorVehicleDriverLicenseScanFileNumber) 
    {
        this.motorVehicleDriverLicenseScanFileNumber = motorVehicleDriverLicenseScanFileNumber;
    }

    public String getMotorVehicleDriverLicenseScanFileNumber() 
    {
        return motorVehicleDriverLicenseScanFileNumber;
    }

    public void setPermittedDrivingType(String permittedDrivingType) 
    {
        this.permittedDrivingType = permittedDrivingType;
    }

    public String getPermittedDrivingType() 
    {
        return permittedDrivingType;
    }

    public void setFirstDriverLicenseAcquisitionDate(Date firstDriverLicenseAcquisitionDate) 
    {
        this.firstDriverLicenseAcquisitionDate = firstDriverLicenseAcquisitionDate;
    }

    public Date getFirstDriverLicenseAcquisitionDate() 
    {
        return firstDriverLicenseAcquisitionDate;
    }

    public void setDriverLicenseValidityStartDate(Date driverLicenseValidityStartDate) 
    {
        this.driverLicenseValidityStartDate = driverLicenseValidityStartDate;
    }

    public Date getDriverLicenseValidityStartDate() 
    {
        return driverLicenseValidityStartDate;
    }

    public void setDriverLicenseValidityEndDate(Date driverLicenseValidityEndDate) 
    {
        this.driverLicenseValidityEndDate = driverLicenseValidityEndDate;
    }

    public Date getDriverLicenseValidityEndDate() 
    {
        return driverLicenseValidityEndDate;
    }

    public void setIsFullTimeDriver(Long isFullTimeDriver) 
    {
        this.isFullTimeDriver = isFullTimeDriver;
    }

    public Long getIsFullTimeDriver() 
    {
        return isFullTimeDriver;
    }

    public void setIsInDriverBlacklist(Long isInDriverBlacklist) 
    {
        this.isInDriverBlacklist = isInDriverBlacklist;
    }

    public Long getIsInDriverBlacklist() 
    {
        return isInDriverBlacklist;
    }

    public void setServiceType(String serviceType) 
    {
        this.serviceType = serviceType;
    }

    public String getServiceType() 
    {
        return serviceType;
    }

    public void setDriverContractSigningCompany(String driverContractSigningCompany) 
    {
        this.driverContractSigningCompany = driverContractSigningCompany;
    }

    public String getDriverContractSigningCompany() 
    {
        return driverContractSigningCompany;
    }

    public void setEmergencyContactPerson(String emergencyContactPerson) 
    {
        this.emergencyContactPerson = emergencyContactPerson;
    }

    public String getEmergencyContactPerson() 
    {
        return emergencyContactPerson;
    }

    public void setEmergencyContactPhone(String emergencyContactPhone) 
    {
        this.emergencyContactPhone = emergencyContactPhone;
    }

    public String getEmergencyContactPhone() 
    {
        return emergencyContactPhone;
    }

    public void setEmergencyContactAddress(String emergencyContactAddress) 
    {
        this.emergencyContactAddress = emergencyContactAddress;
    }

    public String getEmergencyContactAddress() 
    {
        return emergencyContactAddress;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("driverId", getDriverId())
            .append("mobileOperator", getMobileOperator())
            .append("companyIdentifier", getCompanyIdentifier())
            .append("registrationDistrictCode", getRegistrationDistrictCode())
            .append("driverBirthDate", getDriverBirthDate())
            .append("nationality", getNationality())
            .append("driverEthnicity", getDriverEthnicity())
            .append("driverLicenseNumber", getDriverLicenseNumber())
            .append("driverMaritalStatus", getDriverMaritalStatus())
            .append("driverForeignLanguageAbility", getDriverForeignLanguageAbility())
            .append("driverEducation", getDriverEducation())
            .append("householdRegistrationAuthority", getHouseholdRegistrationAuthority())
            .append("householdAddress", getHouseholdAddress())
            .append("driverContactAddress", getDriverContactAddress())
            .append("driverPhotoFileNumber", getDriverPhotoFileNumber())
            .append("motorVehicleDriverLicense", getMotorVehicleDriverLicense())
            .append("motorVehicleDriverLicenseScanFileNumber", getMotorVehicleDriverLicenseScanFileNumber())
            .append("permittedDrivingType", getPermittedDrivingType())
            .append("firstDriverLicenseAcquisitionDate", getFirstDriverLicenseAcquisitionDate())
            .append("driverLicenseValidityStartDate", getDriverLicenseValidityStartDate())
            .append("driverLicenseValidityEndDate", getDriverLicenseValidityEndDate())
            .append("isFullTimeDriver", getIsFullTimeDriver())
            .append("isInDriverBlacklist", getIsInDriverBlacklist())
            .append("serviceType", getServiceType())
            .append("driverContractSigningCompany", getDriverContractSigningCompany())
            .append("emergencyContactPerson", getEmergencyContactPerson())
            .append("emergencyContactPhone", getEmergencyContactPhone())
            .append("emergencyContactAddress", getEmergencyContactAddress())
            .toString();
    }
}
